
//preloading.....
load("library/common.js");

JEuler.system.loadJS("library/math.js");

(function() {

    //JEuler.system.loadJS("data/???.dat");
    JEuler.system.printCaption("074");
    JEuler.system.startTimerCount();
    
    var n=[1];
    for(var i=1; i<=9; i++) {
        n[i] = n[i-1]*i;
    }
    
    var getValue = function(num) {
        var tmp=num, p, sum=0;
        do {
            p = tmp%10;
            sum = sum + n[p];
            tmp = (tmp-p)/10;
        } while(tmp>0);
        return sum;
    };
    
    var checkExist = function(a, t) {
        for(var i=0; i<t.length; i++) {
            if(t[i] == a) return false;
        }
        return true;
    }

    var limit=1000000, sum=0;
    for(var i=1; i<=limit; i++) {
        var terms = [i], s=i;
        do {
            s = getValue(s);
            if(!checkExist(s, terms)) break;
            terms.push(s);
        } while(1);
        if(terms.length==60) {
            sum++;
            print(i);
        }
    }

    JEuler.system.print("SUM=" + sum);
    JEuler.system.printTimerCount();
    
})();
